
/**
 * 表单子控件需要的属性。
 * @this controlId 控件ID
 * * 共用属性部分，基本上每个控件都需要。
 */
export const baseFormProps = {
  name: { // controlId 控件ID，必填
    type: String,
    required: true
  },
  caption: String, // colName 字段名称，必填，避免自动绑定
  isClear: Boolean, // 103 连续添加是否清空，必填，避免自动绑定
  required: Boolean, // 是否必填
  xtype: String, // 104 控件类型编号，必填，识别表单子控件的类型
  size: { // 109 medium / small / mini 三选一，不必填
    type: String,
    default: 'default',
    validator: (value) => {
      // 这个值必须匹配下列字符串中的一个 large / default / small
      return ['large', 'default', 'small'].indexOf(value) !== -1
    }
  },
  optionList: { // 备用选项
    type: Array,
    default: []
  },
  validate_event: { // 统一设置，不必填，输入时是否触发表单的校验
    type: Boolean,
    default: true
  },
  placeholder: {
    type: String,
    default: "请输入~"
  },
  disabled: Boolean  //是否禁用
  
}

/**
 * 控件的公共样式参数
 */
 export const baseStyleProps = {
  caption_position: {  // 字段名称位置
    type: String,
    default: 'left',
    validator: (value) => {
      return ['top', 'left'].indexOf(value) !== -1;
    }
  },
  caption_color: {  // label颜色
    type: String,
    default: '#4E5969'
  },
  caption_width: {  // label宽度(单位px)，max: 96
    type: Number,
    default: 96
  },
  caption_margin_right: {  // label右间距(单位px)，min: 8
    type: Number,
    default: 8
  }
}


/**
 * 多行文本的属性
 */
export const areaProps = {
  show_word_limit: { // 统一设置，不必填，是否显示输入字数统计 text和area有效
    type: Boolean,
    default: true
  },
  rows: { //
    type: Number,
    default: 3
  }
}

/**
 * el-text 单行文本用的属性
 */
export const textProps = {
  type: String,  //文本框类型
  show_word_limit: { // 统一设置，不必填，是否显示输入字数统计 text和area有效
    type: Boolean,
    default: true
  },
  clearable: { // 统一设置，不必填，是否显示清空标记
    type: Boolean,
    default: true
  },
  resize: String // 统一设置，不必填， none, both, horizontal, vertical
}

/**
 * 密码的属性
 */
export const swticherProps = {
  active_text: { // 统一设置，不必填，是否显示切换密码图标
    type: String,
    default: "开启"
  },
  inactive_text: {
    type: String,
    default: ""
  }
}

/**
 * 数字的属性
 */
export const numberProps = {
  controls_position: { // 统一设置，不必填，+-号的位置
    type: String,
    default: 'right'
  },
  min: {
    type: Number,
    default: 0
  },
  max: {
    type: Number,
    default: Number.MAX_VALUE
  }
}

/**
 * 下拉
 */
export const selectProps = {
  url: String,  //字典url
  clearable: {  //是否可以清空选项
    type: Boolean,
    default: true
  },
  filterable: {  //是否可筛选
    type: Boolean,
    default: true
  }
}